home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 March / Amiga-CD 1996 #3.iso / amiga_technologies / include_i / intuition / pointerclass.i < prev    next >
Text File  |  1996-01-19  |  5KB  |  143 lines

  1.     IFND INTUITION_POINTERCLASS_I
  2. INTUITION_POINTERCLASS_I SET 1
  3. **
  4. ** $VER: pointerclass.i 39.5 (15.2.93)
  5. ** Includes Release 40.16
  6. **
  7. **  'boopsi' pointer class interface
  8. **
  9. **  (C) Copyright 1992-1995 ESCOM AG
  10. **        All Rights Reserved
  11. **
  12.  
  13.     IFND EXEC_TYPES_I
  14.     INCLUDE "exec/types.i"
  15.     ENDC
  16.  
  17.     IFND INTUITION_INTUITION_I
  18.     INCLUDE "intuition/intuition.i"
  19.     ENDC
  20.  
  21.     IFND UTILITY_TAGITEM_I
  22.     INCLUDE "utility/tagitem.i"
  23.     ENDC
  24.  
  25. * The following tags are recognized at NewObject() time by
  26. * pointerclass:
  27. *
  28. * POINTERA_BitMap (struct BitMap *) - Pointer to bitmap to
  29. *    get pointer imagery from.  Bitplane data need not be
  30. *    in chip RAM.
  31. * POINTERA_XOffset (LONG) - X-offset of the pointer hotspot.
  32. * POINTERA_YOffset (LONG) - Y-offset of the pointer hotspot.
  33. * POINTERA_WordWidth (ULONG) - designed width of the pointer in words
  34. * POINTERA_XResolution (ULONG) - one of the POINTERXRESN_ flags below
  35. * POINTERA_YResolution (ULONG) - one of the POINTERYRESN_ flags below
  36. *
  37.  
  38. POINTERA_Dummy        EQU    (TAG_USER+$39000)
  39.  
  40. POINTERA_BitMap        EQU    (POINTERA_Dummy+$01)
  41. POINTERA_XOffset    EQU    (POINTERA_Dummy+$02)
  42. POINTERA_YOffset    EQU    (POINTERA_Dummy+$03)
  43. POINTERA_WordWidth    EQU    (POINTERA_Dummy+$04)
  44. POINTERA_XResolution    EQU    (POINTERA_Dummy+$05)
  45. POINTERA_YResolution    EQU    (POINTERA_Dummy+$06)
  46.  
  47. * These are the choices for the POINTERA_XResolution attribute which
  48. * will determine what resolution pixels are used for this pointer.
  49. *
  50. * POINTERXRESN_DEFAULT (ECS-compatible pointer width)
  51. *    = 70 ns if SUPERHIRES-type mode, 140 ns if not
  52. *
  53. * POINTERXRESN_SCREENRES
  54. *    = Same as pixel speed of screen
  55. *
  56. * POINTERXRESN_LORES (pointer always in lores-like pixels)
  57. *    = 140 ns in 15kHz modes, 70 ns in 31kHz modes
  58. *
  59. * POINTERXRESN_HIRES (pointer always in hires-like pixels)
  60. *    = 70 ns in 15kHz modes, 35 ns in 31kHz modes
  61. *
  62. * POINTERXRESN_140NS (pointer always in 140 ns pixels)
  63. *    = 140 ns always
  64. *
  65. * POINTERXRESN_70NS (pointer always in 70 ns pixels)
  66. *    = 70 ns always
  67. *
  68. * POINTERXRESN_35NS (pointer always in 35 ns pixels)
  69. *    = 35 ns always
  70.  
  71. POINTERXRESN_DEFAULT    EQU    0
  72. POINTERXRESN_140NS    EQU    1
  73. POINTERXRESN_70NS    EQU    2
  74. POINTERXRESN_35NS    EQU    3
  75.  
  76. POINTERXRESN_SCREENRES    EQU    4
  77. POINTERXRESN_LORES    EQU    5
  78. POINTERXRESN_HIRES    EQU    6
  79.  
  80. * These are the choices for the POINTERA_YResolution attribute which
  81. * will determine what vertical resolution is used for this pointer.
  82. *
  83. * POINTERYRESN_DEFAULT
  84. *    = In 15 kHz modes, the pointer resolution will be the same
  85. *      as a non-interlaced screen.  In 31 kHz modes, the pointer
  86. *      will be doubled vertically.  This means there will be about
  87. *      200-256 pointer lines per screen.
  88. *
  89. * POINTERYRESN_HIGH
  90. * POINTERYRESN_HIGHASPECT
  91. *    = Where the hardware/software supports it, the pointer resolution
  92. *      will be high.  This means there will be about 400-480 pointer
  93. *      lines per screen.  POINTERYRESN_HIGHASPECT also means that
  94. *      when the pointer comes out double-height due to hardware/software
  95. *      restrictions, its width would be doubled as well, if possible
  96. *      (to preserve aspect).
  97. *
  98. * POINTERYRESN_SCREENRES
  99. * POINTERYRESN_SCREENRESASPECT
  100. *    = Will attempt to match the vertical resolution of the pointer
  101. *      to the screen's vertical resolution.  POINTERYRESN_SCREENASPECT also
  102. *      means that when the pointer comes out double-height due to
  103. *      hardware/software restrictions, its width would be doubled as well,
  104. *      if possible (to preserve aspect).
  105.  
  106. POINTERYRESN_DEFAULT        EQU    0
  107. POINTERYRESN_HIGH        EQU    2
  108. POINTERYRESN_HIGHASPECT        EQU    3
  109. POINTERYRESN_SCREENRES        EQU    4
  110. POINTERYRESN_SCREENRESASPECT    EQU    5
  111.  
  112.  
  113. * Compatibility note:
  114. *
  115. * The AA chipset supports variable sprite width and resolution, but
  116. * the setting of width and resolution is global for all sprites.
  117. * When no other sprites are in use, Intuition controls the sprite
  118. * width and sprite resolution for correctness based on pointerclass
  119. * attributes specified by the creator of the pointer.  Intuition
  120. * controls sprite resolution with the VTAG_DEFSPRITERESN_SET tag
  121. * to VideoControl().  Applications can override this on a per-viewport
  122. * basis with the VTAG_SPRITERESN_SET tag to VideoControl().
  123. *
  124. * If an application uses a sprite other than the pointer sprite,
  125. * Intuition will automatically regenerate the pointer sprite's image in
  126. * a compatible width.  This might involve BitMap scaling of the imagery
  127. * you supply.
  128. *
  129. * If any sprites other than the pointer sprite were obtained with the
  130. * old GetSprite() call, Intuition assumes that the owner of those
  131. * sprites is unaware of sprite resolution, hence Intuition will set the
  132. * default sprite resolution (VTAG_DEFSPRITERESN_SET) to ECS-compatible,
  133. * instead of as requested by the various pointerclass attributes.
  134. *
  135. * No resolution fallback occurs when applications use ExtSprites.
  136. * Such applications are expected to use VTAG_SPRITERESN_SET tag if
  137. * necessary.
  138. *
  139. * NB:  Under release V39, only sprite width compatibility is implemented.
  140. * Sprite resolution compatibility was added for V40.
  141.  
  142.     ENDC
  143.